iT邦幫忙

2024 iThome 鐵人賽

DAY 4
0

今天,我們來介紹在Chit-chat talk 一個具代表的chatbot,DialoGPT。
DialoGPT(Dialogue Generative Pre-trained Transformer),顧名思義就是用於對話的GPT。

它在2019由微軟提出(5年前的東西對AI領域來說都是上古神獸等級的了),希望能生成自然且符合上下文的回覆,也就是它是為了單純與使用者蓋棉被純聊天的機器人。

模型架構

DialoGPT是一種基於GPT-2架構的大規模預訓練對話響應生成模型。
它使用多層的Transformer Decoder(現在的LLMs也大多是這種結構),具體結構包含:

  • 嵌入層:將輸入文字轉換為固定長度的向量,並加上位置向量(Position Embedding)。
  • Transformer Decoder:由多個解碼器區塊組成,每個區塊包含屏蔽自注意力層和前傳遞神經網路層。
  • 輸出層:將解碼器的輸出嵌入轉換為字詞。
    這種架構允許模型在生成過程中考慮上下文訊息,從而提高回應的相關性和流暢性。

在輸出方面它使用自回歸(Auto-regressive)的方式做生成,也就是將自己的輸出當作下一步的輸入。

模型大小

DialoGPT提供了small(117M)、medium(345M)、large(762M)三個大小的模型
這些模型使用50257個字詞進行訓練,能夠根據不同需求選擇合適的模型大小以平衡效能與運算資源。

模型訓練數據

DialoGPT使用Reddit上2005年至2017年約1.47億條(147M)的對話,這些對話大多來自討論區下的留言。
經過過濾後,形成了擁有18億個(1.8B)字詞的多輪對話語料。如此便能讓DialoGPT學習到豐富的對話及上下文關係。

訓練方式與結果

DialoGPT採用因果語言建模(Causal Language Modeling, CLM)作為訓練目標,將多輪對話拼接成長文本進行訓練。你問我什麼是CLM? 痾...這個我們之後再來細談...

DialoGPT產生的對話具高度相關,也與上下文符合高度的一致性,甚至也能精準回答一些常識性問題。

放到現在你可能覺得這對ChaGPT來說是小兒科,但在5年前,這可是驚人的發展。

好啦,以上就是DialoGPT的簡單介紹。之後,我將介紹要怎麼使用Pytorch來架設自己的DialoGPT~

Reference.
DIALOGPT : Large-Scale Generative Pre-training for Conversational Response Generation
DialoGPT: Toward Human-Quality Conversational Response Generation via Large-Scale Pretraining
The Illustrated GPT-2 (Visualizing Transformer Language Models)


上一篇
Day3: ChatGPT的前身與今世(續)-讓AI聊個天其實沒這麼簡單...
下一篇
Day5: 如何利用DialoGPT建立一個小小的聊天機器人
系列文
軟體工程師的脫魯日誌-持續介紹hardcore AI研究直到脫魯🥹13
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言